home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 2003 June / macformat-130.iso / mac / Reviewed⁄Demos / Spearhead Demo / demota / pak1.pk3 / anim / painhit.scr < prev    next >
Encoding:
Text File  |  2002-10-21  |  8.8 KB  |  361 lines

  1. //------
  2. // PainHit
  3. //------
  4. //This differs from the regular pain.scr in that it will not play any extended pain animation...
  5. //mainly being used by the bazooka guys
  6.  
  7. //println "Entering painhit.scr"
  8.  
  9. // Location values, their meanings and the bones they correspond to:
  10. // -2 false positive: should return a miss
  11. // -1 General
  12. // 0  head
  13. // 1  helmet
  14. // 2  neck
  15. // 3  upper torso
  16. // 4  middle torso
  17. // 5  lower torso
  18. // 6  pelvis
  19. // 7  right upper arm
  20. // 8  left upper arm
  21. // 9  right upper leg
  22. // 10 left upper leg
  23. // 11 right lower arm
  24. // 12 left lower arm
  25. // 13 right lower leg
  26. // 14 left lower leg
  27. // 15 right hand
  28. // 16 left hand
  29. // 17 right foot
  30. // 18 left foot
  31.  
  32. //=======================================================
  33. //=======================================================
  34. PainHitMain:
  35.     waitexec anim/smoking.scr::SmokeRemoveCigarette
  36.     waitexec anim/pain.scr::painglobals
  37.     
  38.     switch (self.position)
  39.     {
  40.         walk:
  41.         run:
  42.         stand:
  43.             if (self.weapongroup == bazooka)
  44.             {
  45.                 waitexec anim/painhit.scr::PainHitStandBazooka
  46.             }
  47.             else
  48.             {
  49.                 waitexec anim/painhit.scr::PainHitStand
  50.             }
  51.             break
  52.         knees:
  53.         crouchwalk:
  54.         crouchrun:
  55.         crouch:
  56.             waitexec anim/painhit.scr::PainHitCrouch
  57.             break
  58.         pronewalk:
  59.         prone:
  60.             waitexec anim/pain.scr::PainProne
  61.             break
  62.         crawl:
  63.         floor:
  64.             println "^~^~^ Pain hit for position " self.position " is unsupported - fix painhit.scr"
  65.             waitexec anim/painhit.scr::PainHitCrouch
  66.             break
  67.         default:
  68.             println "^~^~^ Pain hit default case for position " self.position " - fix painhit.scr"
  69.             waitexec anim/painhit.scr::PainHitStand
  70.             break
  71.     }
  72. end
  73.  
  74. //=======================================================
  75. //=======================================================
  76. PainHitStand:
  77.     self.blendtime = 0.25
  78.     switch(self.fact.location)
  79.     {
  80.         // Stand Straight
  81.         case 3: // upper torso
  82.         case 4: // middle torso
  83.         case 5: // lower torso
  84.         case 6: // pelvis
  85.             if (self.fact.damage > 50)
  86.             {
  87.                 self setmotionanim (self.weapongroup + "_stand_hit_uppertorso")
  88.                 self waittill flaggedanimdone
  89.             }
  90.             else
  91.             {
  92.                 self setmotionanim (self.weapongroup + "_stand_hit_lowertorso")
  93.                 self waittill flaggedanimdone
  94.             }
  95.             break
  96.  
  97.         // headshot
  98.         case 1: // helmet
  99.         case 0: // head
  100.         case 2: // neck
  101.             self setmotionanim (self.weapongroup + "_stand_hit_head")
  102.             self waittill flaggedanimdone
  103.             break
  104.         
  105.         // Stand Right
  106.         case 7: // right upper arm
  107.         case 11: // right lower arm
  108.         case 15: // right hand
  109.             self setmotionanim (self.weapongroup + "_stand_hit_rarm")
  110.             self waittill flaggedanimdone
  111.             break
  112.                     
  113.         // Stand Left
  114.         case 8: // left upper arm
  115.         case 12: // left lower arm
  116.         case 16: // left hand
  117.             self setmotionanim (self.weapongroup + "_stand_hit_larm")
  118.             self waittill flaggedanimdone
  119.             break
  120.         
  121.         // Stand Knees
  122.         case 9: // right upper leg
  123.         case 13: // right lower leg
  124.         case 17: // right foot
  125.         case 10: // left upper leg
  126.         case 14: // left lower leg
  127.         case 18: // left foot
  128.             self setmotionanim (self.weapongroup + "_stand_hit_leg")
  129.             self waittill flaggedanimdone
  130.             break
  131.         
  132.         default:
  133.             //println "Painhitstand got hit in unknown location: " self.fact.location
  134.             local.randnum = randomint 100
  135.             if (local.randnum < 25)
  136.             {
  137.                 self setmotionanim (self.weapongroup + "_stand_hit_leg")
  138.                 self waittill flaggedanimdone
  139.             }
  140.             else if (local.randnum < 50)
  141.             {
  142.                 self setmotionanim (self.weapongroup + "_stand_hit_rarm")
  143.                 self waittill flaggedanimdone
  144.             }
  145.             else if (local.randnum < 75)
  146.             {
  147.                 self setmotionanim (self.weapongroup + "_stand_hit_larm")
  148.                 self waittill flaggedanimdone
  149.             }
  150.             else
  151.             {
  152.                 self setmotionanim (self.weapongroup + "_stand_hit_lowertorso")
  153.                 self waittill flaggedanimdone
  154.             }
  155.             break
  156.  
  157.     }
  158. end
  159.  
  160. //=======================================================
  161. //=======================================================
  162. PainHitStandBazooka:
  163.     self.blendtime = 0.50
  164.     switch(self.fact.location)
  165.     {
  166.         // Stand Straight
  167.         case 3: // upper torso
  168.         case 4: // middle torso
  169.         case 5: // lower torso
  170.         case 6: // pelvis
  171.             if (self.fact.damage > 50)
  172.             {
  173.                 self setmotionanim (self.weapongroup + "_hit_stand_torso_med")
  174.                 self waittill flaggedanimdone
  175.             }
  176.             else
  177.             {
  178.                 self setmotionanim (self.weapongroup + "_hit_stand_torso_sm")
  179.                 self waittill flaggedanimdone
  180.             }
  181.             break
  182.  
  183.         // headshot
  184.         case 1: // helmet
  185.         case 0: // head
  186.         case 2: // neck
  187.             self setmotionanim (self.weapongroup + "_hit_stand_head")
  188.             self waittill flaggedanimdone
  189.             break
  190.         
  191.         // Stand Right
  192.         case 7: // right upper arm
  193.         case 11: // right lower arm
  194.         case 15: // right hand
  195.             if (self.fact.damage > 50)
  196.             {
  197.                 self setmotionanim (self.weapongroup + "_hit_stand_rarm_med")
  198.                 self waittill flaggedanimdone
  199.             }
  200.             else
  201.             {
  202.                 self setmotionanim (self.weapongroup + "_hit_stand_rarm_sm")
  203.                 self waittill flaggedanimdone
  204.             }
  205.             break
  206.                     
  207.         // Stand Left
  208.         case 8: // left upper arm
  209.         case 12: // left lower arm
  210.         case 16: // left hand
  211.             if (self.fact.damage > 50)
  212.             {
  213.                 self setmotionanim (self.weapongroup + "_hit_stand_larm_med")
  214.                 self waittill flaggedanimdone
  215.             }
  216.             else
  217.             {
  218.                 self setmotionanim (self.weapongroup + "_hit_stand_larm_sm")
  219.                 self waittill flaggedanimdone
  220.             }
  221.             break
  222.         
  223.         // Stand Knees
  224.         case 9: // right upper leg
  225.         case 13: // right lower leg
  226.         case 17: // right foot
  227.         case 10: // left upper leg
  228.         case 14: // left lower leg
  229.         case 18: // left foot
  230.             self setmotionanim (self.weapongroup + "_hit_stand_leg")
  231.             self waittill flaggedanimdone
  232.             break
  233.         
  234.         default:
  235.             //println "Painhitstand got hit in unknown location: " self.fact.location
  236.             local.randnum = randomint 100
  237.             if (local.randnum < 25)
  238.             {
  239.                 self setmotionanim (self.weapongroup + "_hit_stand_leg")
  240.                 self waittill flaggedanimdone
  241.             }
  242.             else if (local.randnum < 50)
  243.             {
  244.                 self setmotionanim (self.weapongroup + "_hit_stand_rarm_sm")
  245.                 self waittill flaggedanimdone
  246.             }
  247.             else if (local.randnum < 75)
  248.             {
  249.                 self setmotionanim (self.weapongroup + "_hit_stand_larm_sm")
  250.                 self waittill flaggedanimdone
  251.             }
  252.             else
  253.             {
  254.                 self setmotionanim (self.weapongroup + "_hit_stand_torso_sm")
  255.                 self waittill flaggedanimdone
  256.             }
  257.             break
  258.  
  259.     }
  260. end
  261.  
  262. //=======================================================
  263. //=======================================================
  264. PainHitCrouch:
  265.     self.blendtime = 0.50
  266.     switch(self.fact.location)
  267.     {
  268.         // Stand Straight
  269.         case 3: // upper torso
  270.         case 4: // middle torso
  271.         case 5: // lower torso
  272.         case 6: // pelvis
  273.             local.randnum = randomint 100
  274.             if (local.randnum < 33)
  275.             {
  276.                 self setmotionanim (self.weapongroup + "_crouch_hit_uppertorso")
  277.                 self waittill flaggedanimdone
  278.             }
  279.             else if (local.randnum < 66)
  280.             {
  281.                 self setmotionanim (self.weapongroup + "_crouch_hit_lowertorso")
  282.                 self waittill flaggedanimdone
  283.             }
  284.             else
  285.             {
  286.                 self setmotionanim (self.weapongroup + "_crouch_hit_back")
  287.                 self waittill flaggedanimdone
  288.             }
  289.             break
  290.  
  291.         // headshot
  292.         case 1: // helmet
  293.         case 0: // head
  294.         case 2: // neck
  295.             self setmotionanim (self.weapongroup + "_crouch_hit_head")
  296.             self waittill flaggedanimdone
  297.             break
  298.         
  299.         // Stand Right
  300.         case 7: // right upper arm
  301.         case 11: // right lower arm
  302.         case 15: // right hand
  303.             self setmotionanim (self.weapongroup + "_crouch_hit_Rarm")
  304.             self waittill flaggedanimdone
  305.             break
  306.                     
  307.         // Stand Left
  308.         case 8: // left upper arm
  309.         case 12: // left lower arm
  310.         case 16: // left hand
  311.             self setmotionanim (self.weapongroup + "_crouch_hit_Larm")
  312.             self waittill flaggedanimdone
  313.             break
  314.         
  315.         // Stand Knees
  316.         case 9: // right upper leg
  317.         case 13: // right lower leg
  318.         case 17: // right foot
  319.         case 10: // left upper leg
  320.         case 14: // left lower leg
  321.         case 18: // left foot
  322.             self setmotionanim (self.weapongroup + "_crouch_hit_leg")
  323.             self waittill flaggedanimdone
  324.             break
  325.         
  326.         default:
  327.             //println "Painhitcrouch got hit in unknown location: " self.fact.location
  328.             local.randnum = randomint 100
  329.             if (local.randnum < 25)
  330.             {
  331.                 self setmotionanim (self.weapongroup + "_crouch_hit_leg")
  332.                 self waittill flaggedanimdone
  333.             }
  334.             else if (local.randnum < 50)
  335.             {
  336.                 self setmotionanim (self.weapongroup + "_crouch_hit_Larm")
  337.                 self waittill flaggedanimdone
  338.             }
  339.             else if (local.randnum < 75)
  340.             {
  341.                 self setmotionanim (self.weapongroup + "_crouch_hit_Rarm")
  342.                 self waittill flaggedanimdone
  343.             }
  344.             else
  345.             {
  346.                 local.randnum = randomint 100
  347.                 if (local.randnum < 50)
  348.                 {
  349.                     self setmotionanim (self.weapongroup + "_crouch_hit_uppertorso")
  350.                     self waittill flaggedanimdone
  351.                 }
  352.                 else
  353.                 {
  354.                     self setmotionanim (self.weapongroup + "_crouch_hit_lowertorso")
  355.                     self waittill flaggedanimdone
  356.                 }
  357.             }
  358.             break
  359.  
  360.     }
  361. end